package com.admin.dao;

import java.util.ArrayList;

import org.apache.ibatis.annotations.Param;

import com.common.model.Project;

public interface AdminProjectDao {
	//***************题目查询
	/**
	 * 按学院查询所有毕业设计题目
	 * @param clgId
	 * @param start
	 * @return
	 */
	public ArrayList<Project> getAllProjcetsByCollege(@Param("clg_id")int clgId,@Param("start")int start);
	/**
	 * 按学院查询所有毕业设计数目
	 * @param clgId
	 * @return
	 */
	public int getAllProjcetsCountByCollege(int clgId);
	/**
	 * 通过学院获得所有未通过的题目(用于普通管理员)
	 * @param clgId 学院id
	 * @param start
	 * @return
	 */
	public  ArrayList<Project> getUnAutoProjectByCollege(int clgId,int start);
	public  int getUnAutoProjectCountByCollege(int clgId);
	/**
	 * 获取所有未通过的题目(用于超级管理员)
	 * @param start
	 * @return
	 */
	public  ArrayList<Project> getUnAutoProjectByAll(int start);
	public  int getUnAutoProjectCountByAll();
	/**
	 * 根据题目id获取题目
	 * @param prjId
	 * @return
	 */
	public Project getProjectByPrjId(int prjId);
	/**
	 * 根据题目名获取题目
	 * @param prjName
	 * @return
	 */
	public ArrayList<Project>getProjectsByPrjName(String prjName);
	/**
	 * 查询所有题目
	 * @return
	 */
	public ArrayList<Project>getAllProject();
	/**
	 * 获取某教师已通过的题目数量 
	 * @param teaId
	 * @return
	 */
	public int getPassPrjCountOfTea(int teaId);
	//***************题目修改
	/**
	 * 删除一个题目
	 * @param prjId
	 * @return
	 */
	public int deleteProject(int prjId);
	/**
	 * 修改一个题目
	 * @param prj
	 * @return
	 */
	public int updateProject(Project prj);
	/**
	 * 删除题目与专业方向的关系
	 * @param prjId
	 * @return
	 */
	public int deleteProjectBranchOfPrjId(int prjId);
	/**
	 * 插入题目与专业方向的关系
	 * @param prjId
	 * @param branches
	 * @return
	 */
	public int insertProjectBranch(@Param("prj_id")int prjId,@Param("branches")ArrayList<Integer>branches);
	/**
	 * 删除题目附件
	 * @param prfId
	 * @return
	 */
	public int deleteAttachFile(int prjId);
	/**
	 * 删除最终毕业论文
	 * @param prfId
	 * @return
	 */
	public int deleteEssay(int prjId);
	/**
	 * deleteTaskBook
	 * @param prfId
	 * @return
	 */
	public int deleteTaskBook(int prjId);
	/**
	 * 修改题目附件
	 * @param path
	 * @param prjId
	 * @return
	 */
	public int updateAttachFile(@Param("path")String path,@Param("prj_id")int prjId);
	/**
	 * 修改最终毕业论文
	 * @param path
	 * @param prjId
	 * @return
	 */
	public int updateEssay(@Param("path")String path,@Param("prj_id")int prjId);
	/**
	 * 修改任务书
	 * @param path
	 * @param prjId
	 * @return
	 */
	public int updateTaskBook(@Param("path")String path,@Param("prj_id")int prjId);
	/**
	 * 增加一个题目
	 * @param prj
	 * @return
	 */
	public int insertProject(Project prj);
	/**
	 * 审核不通过某个题目
	 * @param prjId
	 * @param failReason
	 * @return
	 */
	public int failProject(@Param("prj_id")int prjId,@Param("fail_reason")String failReason);
	/**
	 * 批量通过审核题目
	 * @param prjIdList
	 * @return
	 */
	public int passProject(ArrayList<Integer> prjIdList);
}
